﻿using Colorful.Furniture.CommonDto;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;

namespace Colorful.Furniture.Func;

/// <summary>
/// 各金额统计
/// </summary>
public class FuncSalesOrderGatherOutputDto
{

    /// <summary>
    /// 月份中文
    /// </summary>
    public string MonthsTxt { get; set; }

    /// <summary>
    /// 月份
    /// </summary>
    public int? Months { get; set; }

    /// <summary>
    /// 年份
    /// </summary>
    public int? Years { get; set; }

    /// <summary>
    ///  总价
    /// </summary>
    public decimal? Total { get; set; }

    /// <summary>
    ///  厂部生产
    /// </summary>
    public decimal? TotalCBSC { get; set; }

    /// <summary>
    ///  外购下单
    /// </summary>
    public decimal? TotalWGXD { get; set; }

    /// <summary>
    ///  外购下单成本
    /// </summary>
    public decimal? TotalWGXDCB { get; set; }

    /// <summary>
    ///  外购下单毛利
    /// </summary>
    public decimal? TotalWGXDML { get; set; }

    /// <summary>
    ///  外下占比
    /// </summary>
    public decimal? WXZB { get; set; }

    /// <summary>
    ///  原材料成本
    /// </summary>
    public decimal? TotalYCLCB { get; set; }

    /// <summary>
    ///  回款金额
    /// </summary>
    public decimal? TotalHK { get; set; }

}

/// <summary>
/// 各金额统计-输入体
/// </summary>
public class FuncSalesOrderGatherInputDto : PageInputDto
{
    /// <summary>
    /// 年份
    /// </summary>
    public int? Years { get; set; }

}



/// <summary>
/// 订单跑量统计-输入体
/// </summary>
public class FuncOrderCustomerInputDto : PageInputDto
{
    /// <summary>
    ///  下单时间
    /// </summary>
    [Required(ErrorMessage = "【下单时间】不能为空")]
    public List<string> AddDate { get; set; }

    /// <summary>
    /// 客户名称
    /// </summary>
    public string CustomerName { get; set; }

    /// <summary>
    /// 产品名称
    /// </summary>
    public string ProductName { get; set; }

}


/// <summary>
/// 订单跑量统计-输出体
/// </summary>
public class FuncOrderCustomerOutputDto
{
    /// <summary>
    /// 客户名称
    /// </summary>
    public string CustomerName { get; set; }

    /// <summary>
    /// 客户编号
    /// </summary>
    public string CustomerCode { get; set; }

    /// <summary>
    ///  销售总金额
    /// </summary>
    public decimal? TotalPrice { get; set; }

    /// <summary>
    ///  成本总金额
    /// </summary>
    public decimal? SupplierTotalPrice { get; set; }

    /// <summary>
    ///  利润金额
    /// </summary>
    public decimal? Profit { get; set; }

    /// <summary>
    /// 总单数
    /// </summary>
    public int? AllNum { get; set; }

    /// <summary>
    /// 成功单数
    /// </summary>
    public int? SuccessNum { get; set; }

    /// <summary>
    ///  成功率
    /// </summary>
    public decimal? SuccessRate { get; set; }

    /// <summary>
    ///  利润率
    /// </summary>
    public decimal? ProfitRate { get; set; }

}





/// <summary>
/// 每日销售额统计-输入体
/// </summary>
public class ProcFinanceRecordsSaleInputDto 
{
    /// <summary>
    ///  下单时间
    /// </summary>
    [Required(ErrorMessage = "【下单时间】不能为空")]
    public List<string> AddDate { get; set; }
    
    /// <summary>
    ///  客户编码
    /// </summary>
    public Guid? CustomerId { get; set; }

    /// <summary>
    ///  产品编码
    /// </summary>
    public Guid? ProductId { get; set; }

}


/// <summary>
/// 每日销售额统计-输出体
/// </summary>
public class ProcFinanceRecordsSaleOutputDto
{
    /// <summary>
    /// 统计时间
    /// </summary>
    public string DayTime { get; set; }
    
    /// <summary>
    ///  销售总金额
    /// </summary>
    public decimal? SuccessTotalPrice { get; set; }

    /// <summary>
    ///  成本总金额
    /// </summary>
    public decimal? SupplierTotalPrice { get; set; }

    /// <summary>
    ///  利润金额
    /// </summary>
    public decimal? Profit { get; set; }

    /// <summary>
    /// 总单数
    /// </summary>
    public int? AllNumber { get; set; }

    /// <summary>
    /// 成功单数
    /// </summary>
    public int? SuccessNumber { get; set; }

    /// <summary>
    ///  成功率
    /// </summary>
    public decimal? SuccessRate { get; set; }

    /// <summary>
    ///  利润率
    /// </summary>
    public string ProfitRate { get; set; }

}




/// <summary>
/// 存量业务-每日销售额统计-输入体
/// </summary>
public class ProcClRecordsSaleInputDto
{
    /// <summary>
    ///  下单时间
    /// </summary>
    [Required(ErrorMessage = "【下单时间】不能为空")]
    public List<string> AddDate { get; set; }

    /// <summary>
    ///  客户编码
    /// </summary>
    public Guid? CustomerId { get; set; }

    /// <summary>
    ///  产品编码
    /// </summary>
    public Guid? ProductId { get; set; }

    /// <summary>
    ///  客户编码
    /// </summary>
    public Guid? SupplierId { get; set; }

}


/// <summary>
/// 统计-结算单-输出体
/// </summary>
public class ProcClRecordsSaleOutputDto
{
    /// <summary>
    /// 对账时间段
    /// </summary>
    public string DayTime { get; set; }

    /// <summary>
    /// 产品编码
    /// </summary>
    public string ProductNo { get; set; }

    /// <summary>
    /// 产品名称
    /// </summary>
    public string ProductName { get; set; }

    /// <summary>
    /// 客户名称
    /// </summary>
    public string CustomerName { get; set; }

    /// <summary>
    /// 供应商名称
    /// </summary>
    public string SupplierName { get; set; }

    /// <summary>
    ///  结算单价
    /// </summary>
    public decimal? Price { get; set; }

    /// <summary>
    ///  结算总金额
    /// </summary>
    public decimal? TotalPrice { get; set; }

    /// <summary>
    /// 结算单数
    /// </summary>
    public int? AllNumber { get; set; }
    
}